package com.lingyu.jsjx.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lingyu.jsjx.domain.ScientificResearch;
import com.lingyu.jsjx.domain.TeachingReflection;

/**
 * 科研管理Service接口
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
public interface IScientificResearchService extends IService<ScientificResearch>
{
    /**
     * 查询科研管理
     * 
     * @param researchId 科研管理主键
     * @return 科研管理
     */
    public ScientificResearch selectScientificResearchByResearchId(Long researchId);

    /**
     * 查询科研管理列表
     * 
     * @param scientificResearch 科研管理
     * @return 科研管理集合
     */
    public List<ScientificResearch> selectScientificResearchList(ScientificResearch scientificResearch);

    /**
     * 新增科研管理
     * 
     * @param scientificResearch 科研管理
     * @return 结果
     */
    public int insertScientificResearch(ScientificResearch scientificResearch);

    /**
     * 修改科研管理
     * 
     * @param scientificResearch 科研管理
     * @return 结果
     */
    public int updateScientificResearch(ScientificResearch scientificResearch);

    /**
     * 批量删除科研管理
     * 
     * @param researchIds 需要删除的科研管理主键集合
     * @return 结果
     */
    public int deleteScientificResearchByResearchIds(Long[] researchIds);

    /**
     * 删除科研管理信息
     * 
     * @param researchId 科研管理主键
     * @return 结果
     */
    public int deleteScientificResearchByResearchId(Long researchId);

    /**
     * 查询各学院科研预算和数量统计
     * @return
     */
    public List<Map<String,Object>> selectCountBudgetStatistic();

    /**
     * 查询科研类型的进行中和已完成
     * @return
     */
    public List<Map<String,Object>> selectResearchTypeCount();

    /**
     * 导入科研管理数据
     * @param scientificResearchList
     * @param isUpdateSupport
     * @return
     */
    public String importScientificResearch(List<ScientificResearch> scientificResearchList, Boolean isUpdateSupport);
}
